package com.boat.framework.common.util;

import com.boat.framework.common.sequence.SequenceFactory;
import com.boat.framework.common.sequence.UniqueIdCode;

import cn.hutool.core.util.IdUtil;

/**
 * 统一id生成器
 * 
 * @author 周江
 *
 */
public class IdUtils {
	/**
	 * uuid去掉-
	 * 
	 * @return
	 */
	public static String getUuid() {
		return IdUtil.simpleUUID();
	}

	/**
	 * ObjectId是MongoDB数据库的一种唯一ID生成策略，是UUID version1的变种
	 * 
	 * @return
	 */
	public static String getObjectId() {
		return IdUtil.objectId();
	}

	/**
	 * 雪花算法id
	 * 
	 * @return
	 */
	public static long getSnowflakeId() {
		return IdUtil.getSnowflakeNextId();
	}

	/**
	 * 基于数据库序列化生成的业务ID
	 * 
	 * @param code
	 * @return
	 */
	public static String getSequence(UniqueIdCode code) {
		return SequenceFactory.instance().getId(code);
	}

}
